package objectUtils

import (
	"github.com/beego/beego/v2/server/web"
	"reflect"
)

// ObjectCopy 对象拷贝
// target 目标对象
// source 源对象
func ObjectCopy(target interface{}, source interface{}) {
	bVal := reflect.ValueOf(target).Elem()
	vVal := reflect.ValueOf(source).Elem()
	vTypeOfT := vVal.Type()
	for i := 0; i < vVal.NumField(); i++ {
		// 在要修改的结构体中查询有数据结构体中相同属性的字段，有则修改其值
		name := vTypeOfT.Field(i).Name
		if ok := bVal.FieldByName(name).IsValid(); ok {
			bVal.FieldByName(name).Set(reflect.ValueOf(vVal.Field(i).Interface()))
		}
	}
}

// GetConfig 获取配置文件
func GetConfig(key string) string {
	return web.AppConfig.DefaultString(key, "")
}
